﻿using HCQ2_Model;
using HCQ2_Model.VR.Model;
using HCQ2_Model.VR.Params;
using HCQ2_Model.VRDD.InputDto._0714;
using HCQ2_Model.VRDD.OutputDto._0714;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HCQ2_IBLL
{
    public partial interface IT_VRUserLevelBLL
    {
        /// <summary>
        ///  获取用户等级一栏数据
        /// </summary>
        /// <param name="param">查询参数</param>
        /// <param name="total">返回总的记录条数</param>
        /// <returns></returns>
        List<UserLevelModel> GetUserLevelData(UserlevelParam param, out int total);
        /// <summary>
        ///  重新计算用户销售额及统计级别
        /// </summary>
        /// <param name="user_id">推荐人id</param>
        /// <param name="folder_id">商铺id</param>
        /// <param name="year"></param>
        /// <returns></returns>
        UserLevelColumn ResetUserLevel(int user_id,int folder_id,int year);
        /// <summary>
        ///  获取积分列表
        /// </summary>
        /// <param name="param"></param>
        /// <param name="total"></param>
        /// <returns></returns>
        List<UserIntegralLogModel> GetTotalGoldList(TotalLogParam param,out int total);
        /// <summary>
        ///  获取用户店铺等级成长值
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        OutputUserGrow GetUserGrowUpByStore(InputUserLevelGrowUp param);
        /// <summary>
        ///  获取店铺根节点id
        /// </summary>
        /// <param name="store_id"></param>
        /// <returns></returns>
        int GetRootIdByStore(int store_id);
        /// <summary>
        ///  获取商品折扣
        /// </summary>
        /// <param name="user_level">用户等级</param>
        /// <param name="file_id">商品id</param>
        /// <param name="folder_id">店铺id</param>
        /// <returns></returns>
        decimal GetGoodRate(int user_level,int file_id,int folder_id);
        /// <summary>
        /// 获取店铺根节点对象
        /// </summary>
        /// <param name="store_id"></param>
        /// <returns></returns>
        T_DocumentFolder GetRootIdByStore1(int store_id);
    }
}